package com.xxx.service;
import java.util.List;
import java.util.Map;

import com.xxx.common.dto.Menu;
import com.xxx.common.dto.Page;
import com.xxx.common.dto.Pagination;
import com.xxx.model.SysMenu;

public interface SysMenuService {

	/**
	 * 保存或者更新
	 * @param sysMenu
	 * @return
	 */
	public long saveOrUpdate(SysMenu sysMenu) throws Exception;
		
	/**
	 * 删除
	 * @param id
	 * @return
	 */
	public boolean delete(long id) throws Exception;
	
	/**
	 * 获取个数
	 * @param whereMap
	 * @return
	 * @throws Exception 
	 */
	public int getCount(Map<String, Object> whereMap) throws Exception;
	
	/**
	 * 根据id获取
	 * @param id
	 * @return
	 */
	public SysMenu getEntity(long id) throws Exception;
	
	/**
	 * 获取所有 
	 * @param whereMap 查询条件
	 * @return
	 */
	public List<SysMenu> getList(Map<String, Object> whereMap) throws Exception;
	
	/**
	 * 获取集合,带分页条件
	 * @param whereMap 查询条件
	 * @param pagination 分页,排序
	 * @return
	 */
	public List<SysMenu> getList(Map<String, Object> whereMap,Pagination pagination) throws Exception;
	
	/**
	 * 获取集合,带分页参数
	 * @param whereMap 查询条件
	 * @param pagination 分页,排序
	 * @return
	 */
	public Page<SysMenu> getPage(Map<String, Object> whereMap,Pagination pagination) throws Exception;
	
	
	/**
	 * 系统权限菜单
	 * @param whereMap 查询条件
	 * @param userid   userid 判断权限
	 * @param whereMap
	 * @return
	 */
	public List<Menu> getMenuList(Map<String, Object> whereMap,long userid);
}
